#ifndef CUSTOMER_HH
#define CUSTOMER_HH
#include <string>
#include <memory>
#include "SavingAccount.hh"
#include "CheckingAccount.hh"
// Manages customer data and their accounts.
namespace Bank {
    class Customer {
    private:
        std::string name;
        std::shared_ptr<SavingsAccount> savingsAccount;
        std::shared_ptr<CheckingAccount> checkingAccount;
        std::string savingsId;
        std::string checkingId;

    public:
        Customer(const std::string& name);

        std::string getName() const;
        // Returns a shared pointer to the customer's SavingsAccount
        std::shared_ptr<SavingsAccount> getSavingsAccount() const;
        // Returns a shared pointer to the customer's CheckingAccount
        std::shared_ptr<CheckingAccount> getCheckingAccount() const;

        void displayCustomerAccounts() const;
    };
    std::string generateUniqueAccountId(int prefix); 
    }
#endif